#ifndef SALA_PARTIDA_H_
#define SALA_PARTIDA_H_
#include <string>
#include <gtkmm.h>

#include "BotonPartida.h"

class PanelElegirPartida;

class SalaPartida : public Gtk::Fixed {
    friend class PanelElegirPartida;

    class ModelColumns : public Gtk::TreeModel::ColumnRecord {
      public:
        ModelColumns() {
            add(usuarioConectado);
        }

        Gtk::TreeModelColumn<Glib::ustring> usuarioConectado;
    };

    void actualizarEncabezado();
    void inicializarListadoPartidas();
    void agregarConectados(Glib::ustring);
    void inicializarScroll();
    void insertarWidgets();

    int idPartida, jugNecesarios, jugConectados, nivel;

    ModelColumns m_Columns;

    BotonPartida *button_unirme;
    BotonPartida *button_salir;

    Gtk::ScrolledWindow scrollConectados;

    Gtk::TreeView m_TreeView;

    Glib::RefPtr<Gtk::ListStore> m_refTreeModel;

  public:
    explicit SalaPartida(int, int, Glib::ustring, int, BotonPartida *,
                         BotonPartida *);
    virtual ~SalaPartida();

    void agregarConectado(std::string jugador);
    void borrarConectado(std::string jugador);
};

#endif
